package com.piggy.logi.sys.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.piggy.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 保证金新增对象
 *
 * @author fengxy
 * @date 2023/10/17 21:44
 **/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel("保证金新增对象")
public class LogiMarginAddBo extends BaseEntity {

	/** 主键 */
	@ApiModelProperty("主键")
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	private Long id;

	/** 用户ID */
	@ApiModelProperty("用户ID")
	@NotNull(message = "用户ID不能为空")
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	private Long userId;

	/** 用户类型：0.客户 1.承运商 2.司机 */
	@ApiModelProperty("用户类型：0.客户 1.承运商 2.司机")
	@NotNull(message = "用户类型不能为空")
	private Integer userType;

	/** 支付账号 */
	@ApiModelProperty("支付账号")
	@NotBlank(message = "支付账号不能为空")
	private String payAccount;

	/** 支付账号类型（数据字典：account_type） */
	@ApiModelProperty("支付账号类型（数据字典：account_type）")
	@NotBlank(message = "支付账号类型不能为空")
	private String payAccountType;

	/** 支付金额 */
	@ApiModelProperty("支付金额")
	@NotNull(message = "支付金额不能为空")
	private BigDecimal payAmount;

	/** 支付方式（数据字典：pay_channel） */
	@ApiModelProperty("支付方式（数据字典：pay_channel）")
	@NotBlank(message = "支付方式不能为空")
	private String payChannel;

	/** 支付时间 */
	@ApiModelProperty("支付时间")
	@NotNull(message = "支付时间不能为空")
	private Date payTime;

	/** 支付凭证 */
	@ApiModelProperty("支付凭证")
	private String payVoucher;

	/** 支付备注 */
	@ApiModelProperty("支付备注")
	private String payRemark;

}
